package com.samehope.ar.service;

import com.samehope.ar.dto.FindPasswordParam;
import com.samehope.ar.dto.ModifyPasswordParam;
import com.samehope.ar.dto.UpdateUserInfoParam;
import com.samehope.ar.dto.UserRegisterParam;
import com.samehope.ar.entity.SysRole;
import com.samehope.ar.entity.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.samehope.ar.vo.UserCompanyDataVO;
import com.samehope.ar.vo.UserInfoVO;

import java.util.List;

/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author Zhang Luo
 * @since 2019-12-23
 */
public interface ISysUserService extends IService<SysUser> {

    /**
     * 根据手机号查找用户
     * @param mobile
     * @return
     */
    SysUser getByMobile(String mobile);

    /**
     * 根据用户查找权限集合
     * @param userId
     * @return
     */
    List<SysRole> getRoleListByUser(Long userId);

    /**
     * 用户注册
     * @param param
     */
    void register(UserRegisterParam param);

    /**
     * 用户登录
     * @param mobile
     * @param password
     * @return
     */
    UserCompanyDataVO login(String mobile, String password);

    /**
     * 刷新token
     * @param token
     * @return
     */
    String refreshToken(String token);

    /**
     * 找回密码功能
     * @param param
     */
    void findPassword(FindPasswordParam param);

    /**
     * 修改密码
     * @param param
     */
    void modifyPassword(ModifyPasswordParam param);

    /**
     * 修改个人资料
     * @param param
     */
    void updateUserInfo(UpdateUserInfoParam param);

    /**
     * 查询个人资料
     * @return
     */
    UserInfoVO getUserInfo();
}
